package com.xbongbong.pro.rabbitmq.feign;

import com.xbongbong.paas.toolbox.wrap.XbbResponse;
import com.xbongbong.pro.message.pojo.dto.MessageRabbitMqDTO;
import com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * distributor 内部调用接口(消息用)
 * @author 魏荣杰
 * @date 2019/2/25 15:23
 * @since v1.0
 * @version v1.0
 */
@FeignClient(name = "pro-web-pc",contextId = "distributorFeignClient")
public interface DistributorFeignClient {
    //****************************************** 经销商联系人 ******************************************************//
    /**
     * Description: 经销商新建  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributor/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorAdd(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商添加删除负责人  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/26 16:11
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributor/teamMain", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorTeamMain(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商添加删除协同人  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/26 16:11
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributor/teamSynergetic", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorTeamSynergetic(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商移交  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/26 16:11
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributor/handover", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorHandover(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商联系人 新建  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorContact/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorContactAdd(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);

    //****************************************** 经销商跟进记录 ******************************************************//
    /**
     * Description: 经销商跟进记录新建  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorCommunicate/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorCommunicateAdd(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商跟进记录点赞  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorCommunicate/like", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorCommunicateLike(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商跟进记录评论  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorCommunicate/comment", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorCommunicateComment(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商跟进记录回复  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorCommunicate/replay", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorCommunicateReplay(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 经销商跟进记录@他人  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:07
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorCommunicate/at", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorCommunicateAt(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);

    /**
     * Description: 经销商跟进记录评论删除  消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 徐斌
     * @date 2020/4/17 11:00
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/distributorCommunicate/commentDel", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> distributorCommunicateCommentDel(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
}
